Load testing, generally, is used to put demands on a system, device, application or combination thereof, and measure the response. Load testing has numerous uses, including: demonstrating that a system meets performance criteria, comparing two systems to determine which performs better, and measuring the components of the system or workload on the system that cause the system to perform poorly. Load testing, as described above, is useful for testing the performance of software applications, databases, networks, client side processing, load balancing utilities, and other systems and programs.
In software, and more particularly, software applications utilized over a network, load testing may refer to the practice of modeling the usage of a software application by simulating multiple users accessing the program concurrently. As such, testing is relevant for multi-user systems, often systems built according to a client/server model, such as web servers. However, other types of software systems may also be load tested. For example, a word processor or graphics editor can be forced to read an extremely large document; or a financial software package can be forced to generate a report based on several years' worth of data.
When the load placed on a system is raised beyond normal usage patterns in order to test a system's response at unusually high or peak loads, this technique is known as stress testing.
Some load testers operate based on a “script” of the test to be performed. That is, the script of the workload of the system is run by the load tester. For example, a script may consist of a series of Database requests. As long as a user is able to edit the script, the user is capable of creating and altering conditions for testing. Such modifications may include parameterization (selecting data for keyword-driven testing), correlation, and error handling. One benefit of a script is easy modification to alter the conditions of the load on the system.
Although models can be useful, the most useful load testing assessment is based on actual, rather than theoretical, loads. It is often crucial for the test conditions to be similar to the expected actual use. However, it can be difficult to simulate or predict the actual conditions of operation because the workload of a system has random characteristics. While models attempt to mimic what may happen in the system, it is impossible to exactly replicate this workload variability.
Accordingly, in order to better simulate actual operating conditions, the above mentioned scripts may be created by “recording” the system to be tested during normal operation. That is, during a “recording phase” a system is operated normally so that, for example a client application issues requests to a backend server, which sends responses, and those requests and responses are “recorded” to create a script. The recorded script is then “played back” by the load tester to test and evaluate the performance of the system. One example of such a tester is LoadRunner®, which is commercially available from Hewlett-Packard, Corp.
A drawback to load testing and performance products available on the market (i.e., so-called “off-the-shelf” products) is that they are typically limited to particular message formats. For example, an application to be tested may send out messages in format X, but the load tester may only accept a script in format A. Thus, if the application messages (which may be in the form of requests and responses) are recorded in format X, then the load tester cannot support the script and test the application.
If the software testing laboratory is testing multiple applications having different message formats X, Y, Z, etc., and the load tester can only operate with one format A then the problem is magnified.
If the software testing laboratory uses multiple load testers working in formats A, B, C, etc., then the problem may be exacerbated even further.
Another problem arises when the format of the load tester is not comprehendible by a user, such that a User may edit the script to, for example, alter the conditions of load testing.
It should be readily apparent to those having ordinary skill in the art that other problems and drawbacks also may also exist.